package at.ac.univie.zsu.aguataplan.service;

import java.util.List;

import at.ac.univie.zsu.aguataplan.domain.DetectedEvent;
import at.ac.univie.zsu.aguataplan.domain.Event;
import at.ac.univie.zsu.aguataplan.domain.EventAttribute;
import at.ac.univie.zsu.aguataplan.domain.EventAttributeValue;
import at.ac.univie.zsu.aguataplan.domain.Video;
import at.ac.univie.zsu.aguataplan.exception.DatabaseException;

/**
 * @author gerry
 * 
 */
public interface DetectedEventManager {

	public void cleanDetectedEvent() throws DatabaseException;

	// --------------

	public DetectedEvent addEventToDetectedEvent(Event event, float detPosition, long detTime, double length,
			Video video) throws DatabaseException;

	public DetectedEvent addEventAttributeToDetectedEvent(DetectedEvent detectedEvent, EventAttribute eventAttribute)
			throws DatabaseException;

	public DetectedEvent addEventAttributeValueToDetectedEvent(DetectedEvent detectedEvent,
			EventAttributeValue eventAttributeValue) throws DatabaseException;

	public List<DetectedEvent> getDetectedEventByVideoList(Video video) throws DatabaseException;

	public void deleteDetectedEvent(DetectedEvent detectedEvent) throws DatabaseException;

	public List<DetectedEvent> getDetectedEventByEvent(Event event, Video video) throws DatabaseException;

}
